home *** CD-ROM | disk | FTP | other *** search
- XINCLUDE rexxstorage.bb2 ;=include/rexx/storage.h
-
- DEFTYPE.MsgPort *replyport
- DEFTYPE.RexxMsg *rexxmsg
- DEFTYPE.l
-
- Statement sendrexx{rexx$}
-
- ;make complex pointers global or Blitz 1.80 will be confused sometimes
- SHARED *replyport.MsgPort,*rexxmsg.RexxMsg
- name$="BLITZBLANK"
- *rexxmsg=CreateRexxMsg_(*replyport,0,&name$)
- If *rexxmsg
- *arg=CreateArgstring_(&rexx$,Len(rexx$))
- If *arg
- *rexxmsg\rm_Args=*arg
-
- ;set #RXFF_RESULT to request a resultstring
- *rexxmsg\rm_Action=#RXCOMM|#RXFF_NOIO|#RXFF_RESULT
- Forbid_
- *arexxport=FindPort_(&name$)
- If *arexxport
- PutMsg_ *arexxport,*rexxmsg
- Permit_
- WaitPort_ *replyport
- *rexxmsg=GetMsg_(*replyport)
- If *rexxmsg\rm_Result1=0 AND *rexxmsg\rm_Result2<>0
-
- ;print resultstring
- NPrint Peek$(*rexxmsg\rm_Result2)
- DeleteArgstring_ *rexxmsg\rm_Result2
- EndIf
- Else
- Permit_
- EndIf
- DeleteArgstring_ *rexxmsg\rm_Args
- EndIf
- DeleteRexxMsg_ *rexxmsg
- EndIf
- End Statement
-
- ;simple test-routine:
- ;we want to send many ARexx-messages, so create the port outside only once
- *replyport=CreateMsgPort_()
- If *replyport
- sendrexx{"BLANK"}
- DeleteMsgPort_ *replyport
- EndIf
-